﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace StarsAdmin.Core.Extensions
{
    public static class TaskExtension
    {
        public static void Run(string message, Func<Task> func)
        {
            // 使用 Task 将操作放到后台执行
            Task.Run(async () =>
           {
               try
               {
                   // 处理任务成功的情况
                   Console.WriteLine($"开始执行{message}后台任务");
                   await func();
               } catch (Exception ex)
               {
                   Console.WriteLine($"{message}后台任务失败: {ex.Message}");
               }
           }).ContinueWith(task =>
           {
               if (task.IsFaulted)
               {
                   // 处理任务失败的情况
                   Console.WriteLine($"{message}后台任务执行失败: {task.Exception?.Message}");
               } else
               {
                   // 处理任务成功的情况
                   Console.WriteLine($"{message}后台任务执行完成");
               }
           });
        }
    }
}